1. Field of the Invention
The present invention generally relates to enterprise database management and, more particularly, to a method for developing and dynamically constructing multi-tiered distributed computing applications.
2. Background Description
Enterprises of all types, be they commercial or non-commercial, have significant amounts of distributed data and large numbers of persons to access, review, and/or update and in other ways modify that data. This data processing requirement is addressed by the use of computers, network infrastructures, and software applications. Typically, the data is stored using commercially available database software, and it is transported around the network using standard communication protocols embraced by all system manufacturers.
The software applications which extract the information from the database, package it for transmission over the network, and provide analytical and review capabilities to the enterprise users are often designed and constructed by the enterprise itself to meet the specific needs of that enterprise""s user community. This usually involves substantial development efforts over significant periods of time, often resulting in either applications which fail to meet the evolving needs of the user community or software which is ultimately not deployed for use. An additional problem is that within large enterprises, software applications developed by different business units are unable to integrate with each other and result in duplication of effort and what is often referred to as application silos within an enterprise. These silos are independent, standalone enterprise data processing solutions which focus on a particular business area of an enterprise, such as a product line, and are unable to deal with enterprise-wide data processing needs in area such as customer relationship management.
Another problem with the software applications currently being developed by enterprises is that they often do not share a common user interface or interaction metaphor. This causes increased training costs when the user community accesses and interacts with enterprise data through disparate and incompatible software applications.
It is therefore an object of the present invention to provide a system and a method for developing and dynamically constructing multi-tiered distributed computing applications.
According to the invention, there is provided a framework for developing multi-tiered distributed enterprise applications. This framework allows the major elements involved in enterprise software applications, namely, the user interface, the data access, and the processing logic, to be independently developed. Moreover, the applications are dynamically created at time of use with pre-built software components or objects. The specifics of the applications such as functions, capabilities, user interface (UI) characteristics, etc., may depend on, for example, the user identity, the user preferences, and the terminal capability. In other words, the invention is aimed at reducing software development cost and turn-around time, promoting a consistent UI design thus reducing user training cost, and allowing the applications to be dynamically created from independently developed software components according to the user profile.
The invention embodies the following main concepts:
1. A multi-tiered application is composed of three types of objects:
Graphical User Interface (GUI) objectsxe2x80x94Centrally developed objects which allow the user to interact (e.g., view, create, modify) with enterprise data. GUI objects can be composites of other GUI objects.
Business Logic (BL) objectsxe2x80x94Objects which provide analysis, transformation, validation and other services on enterprise data.
Enterprise Data Adapter (EDA) objectsxe2x80x94Objects which transfer data between the tiers of a multi-tiered network application, including the persistent enterprise data store.
2. The GUI, BL and EDA objects contain no application specific data encapsulation objects for data which is defmed by the enterprise data model. BL objects encapsulate only application and enterprise business rules. The GUI and BL objects are built using data semantics from the enterprise data model, not application specific semantics.
3. The GUI, BL, and EDA objects communicate with each other, by passing encapsulated data in the form of Generic Data Encapsulation (GDE) objects which contain the embedded data semantics. There is also a facility for creating and routing of GDE objects within an application.
4. Applications running in the client and business logic tier(s) are dynamically created at runtime by loading GUI, BL, and EDA objects according to a configuration document provided by a centralized configuration service which typically has an authentication mechanism.